<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit d'ajout
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 3 || $GLOBALS['USER']['admin'])){

?>
<?php
//------------------------------------------------------------ Valeur des champs avant saisie

	$dv_nom = ""; // valeur du champ nom (ajt_nom)
	$dv_cp = ""; // valeur du champ code postal (ajt_cp)
	$dv_pays = ""; // valeur du champ pays (ajt_pays)
	$dv_ign = ""; // valeur du champ ref. IGN (ajt_ign)
	$dv_insee = ""; // valeur du champ code INSEE (ajt_insee)
	
	// Valeurs possibles du champ ajt_pays
	$query_recuperation_pays = "SELECT CODEPAYS AS id, NOMPAYS AS nom FROM pays ORDER BY nom";
	
	$result_recuperation_pays =  mysql_query($query_recuperation_pays, $connexion) or logError("RECUPERATION PAYS-".$query_recuperation_pays."-".mysql_error());

	$selectPays = array(); // on créé un tableau qui contient la liste des pays ainsi que les informations de chacun
	$nb_pays = 0;
	while($tab_recuperation_pays = mysql_fetch_assoc($result_recuperation_pays)){
		$selectPays[$nb_pays] = $tab_recuperation_pays;
		$nb_pays++;
	}
	
	mysql_free_result($result_recuperation_pays);
	
?>
<?php
//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- le nom et le code postal de la commune ne peut pas être vide
	- le couple nom/code postal de la commune ne doit pas être déjà enregistré dans la BDD
	- le pays doit exister dans la BDD

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement

	trimTabByKey($_POST, "ajt_"); // appel à la fonction trimTabByKey() définie dans fonctions.php
	
	//---------------------------------- Contrôle des données ----------------------------------
	
	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données du nom de la commune
		if(isset($_POST['ajt_nom']) && is_string($_POST['ajt_nom']) && isset($_POST['ajt_cp']) && is_string($_POST['ajt_cp'])){
			if(!emptyString($_POST['ajt_nom'])){
				if(!isNameFormat($_POST['ajt_nom'])){
					$statut[] = "Format du nom de commune incorrect";
					$erreur = true;
				}else{
					$dv_nom = $_POST['ajt_nom'];
				}
			}else{
				$statut[] = "Nom de commune vide";
				$erreur = true;
			}
			if(!emptyString($_POST['ajt_cp'])){
				if(!isPostalFormat($_POST['ajt_cp'])){
					$statut[] = "Format du code postal incorrect";
					$erreur = true;
				}else{
					$dv_cp = $_POST['ajt_cp'];
				}
			}else{
				$statut[] = "Code postal vide";
				$erreur = true;
			}
			if(!$erreur){
				// On vérifie que le couple (Code postal/nom de commune) n'existe pas déjà dans la BDD
				$query_recuperation_nb_communes = "SELECT COUNT(*) FROM commune WHERE NOMCOMMUNE = ".mysqlString($_POST['ajt_nom'])." AND CODEPOSTAL = ".mysqlString($_POST['ajt_cp']);
				$result_recuperation_nb_communes = mysql_query($query_recuperation_nb_communes, $connexion) or logError("RECUPERATION NB COMMUNES-".$query_recuperation_nb_communes."-".mysql_error());
				$tab_recuperation_nb_communes = mysql_fetch_row($result_recuperation_nb_communes);
				if($tab_recuperation_nb_communes[0] > 0){
					$statut[] = "Cette commune existe déjà";
					$erreur = true;
				}
				mysql_free_result($result_recuperation_nb_communes);
			}
		}else{
			$statut[] = "Aucun nom de commune et/ou code postal indiqué";
			$erreur = true;
		}
		
		// Contrôle des données du pays
		if(isset($_POST['ajt_pays']) && is_string($_POST['ajt_nom'])){
			if(!numericInt($_POST['ajt_pays'])){
				$statut[] = "Format du pays incorrect";
				$erreur = true;
			}else{
				if(valueExists((int)$_POST['ajt_pays'], "CODEPAYS", "pays", $connexion) == 1){
					$dv_pays = $_POST['ajt_pays'];
				}else{
					$statut[] = "Le pays n'existe pas";
					$erreur = true;
				}
			}
		}else{
			$statut[] = "Aucun pays indiqué";
			$erreur = true;
		}
		
		// Contrôle des données du code INSEE
		if(isset($_POST['ajt_insee']) && is_string($_POST['ajt_insee'])){ 
			$dv_insee = $_POST['ajt_insee'];
		}else{
			$statut[] = "Aucun code INSEE indiqué";
			$erreur = true;
		}
		
		// Contrôle des données de la référence IGN
		if(isset($_POST['ajt_ign']) && is_string($_POST['ajt_ign'])){ 
			$dv_ign = $_POST['ajt_ign'];
		}else{
			$statut[] = "Aucune référence IGN indiquée";
			$erreur = true;
		}
		
		//---------------------------------- Création de la commune ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
			
			$query_ajout_commune = "INSERT INTO commune(NOMCOMMUNE, CODEPOSTAL, CODEPAYS, CODEINSEE, REFERENCEIGN) ";
			$query_ajout_commune .= "VALUES(".mysqlString($_POST['ajt_nom'])." , ".mysqlString($_POST['ajt_cp'])." , ".$_POST['ajt_pays']." ";
			if(emptyString($_POST['ajt_insee'])){
				$query_ajout_commune .= ", NULL ";
			}else{
				$query_ajout_commune .= ", ".mysqlString($_POST['ajt_insee'])." ";
			}
			if(emptyString($_POST['ajt_ign'])){
				$query_ajout_commune .= ", NULL ";
			}else{
				$query_ajout_commune .= ", ".mysqlString($_POST['ajt_ign'])." ";
			}
			$query_ajout_commune.= ") ";
			
			$result_ajout_commune = mysql_query($query_ajout_commune, $connexion) or logError("CREATION COMMUNE-".$query_ajout_commune."-".mysql_error());
		
			if($result_ajout_commune === true){
				$statut[] = "La commune a été ajoutée - redirection dans 2 sec...";
				logAction("COMMUNE (id: ".valueMax("CODECOMMUNE", "commune", $connexion).") AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
			}else{
				$statut[] = "Erreur critique lors de la création de la commune";
				$erreur = true;
			}
		
		}
		
	}
?>
<?php
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
		
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
			redirection("gestion/commune_ajoute", 2); // appel à la fonction redirection() définie dans fonctions.php
		}
	
	}

?>
<?php
	boutonRetour("index.php?p=gestion/commune_gere"); // // appel à la fonction boutonRetour() définie dans fonctions.php
?>
<form method="post" action="index.php?p=gestion/commune_ajoute">
	<table class="formulaire" style="margin-left: auto; margin-right: auto;">
		<tr>
			<th class="titre" colspan="2">Ajout d'une commune</th>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">informations</th>
		</tr>
		<tr>
			<td style="width: 120px" class="etiquette">Nom * :</td>
			<td style="width: 275px" class="champ"><input type="text" name="ajt_nom" size="25" value="<?php echo htmlentities($dv_nom, ENT_COMPAT, "UTF-8"); ?>" /></td>
		</tr>
		<tr>
			<td class="etiquette">Code postal * :</td>
			<td class="champ"><input type="text" name="ajt_cp" size="25" value="<?php echo htmlentities($dv_cp, ENT_COMPAT, "UTF-8"); ?>" /></td>
		</tr>
		<tr>
			<td class="etiquette">Pays * :</td>
			<td class="champ">
				<select id="ajt_pays" name="ajt_pays">
					<?php
						if($nb_pays > 0){
							foreach($selectPays as $pays){
								if($pays['id'] == $dv_pays){
									echo "<option value=\"".$pays['id']."\" selected=\"selected\">".htmlentities(capitalise($pays['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
								}else{
									echo "<option value=\"".$pays['id']."\">".htmlentities(capitalise($pays['nom']), ENT_NOQUOTES, "UTF-8")."</option>";
								}
							}
							unset($pays);
						}else{
							echo "<option disabled=\"disabled\">Aucun pays enregistré</option>";
						}
					?>
				</select>
				<input type="text" class="recherche" id="srch_pays" style="vertical-align: top;" value="recherche..." size="10" onfocus="clearField('srch_pays', 'recherche...');" onblur="resetField('srch_pays', 'recherche...');" onkeyup="trierSelect('ajt_pays', 'srch_pays');" />
				<br />
				<input type="button" value="Ajouter un pays" onclick="popup('popup.php?p=gestion/pays_ajoute_popup&amp;maj=ajt_pays&amp;sel=1', 400, 300);" />
			</td>
		</tr>
		<tr>
			<th class="sous_titre" colspan="2">références</th>
		</tr>
		<tr>
			<td class="etiquette">Code INSEE :</td>
			<td class="champ"><input type="text" name="ajt_insee" size="15" value="<?php echo htmlentities($dv_insee, ENT_COMPAT, "UTF-8"); ?>" /></td>
		</tr>
		<tr>
			<td class="etiquette">Ref. IGN :</td>
			<td class="champ"><input type="text" name="ajt_ign" size="15" value="<?php echo htmlentities($dv_ign, ENT_COMPAT, "UTF-8"); ?>" /></td>
		</tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Ajouter" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
		<tr>
			<td class="legende" colspan="2">* = champs obligatoires</td>
		</tr>
	</table>
</form>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>